package framework.automaton;

import java.awt.Color;

import javax.swing.ImageIcon;

/**
 * This interface specifies the visual properties that should be associated
 * with the visual aspect of some single State object; the Mapping class
 * assigns each State object with some Visualization object.
 * 
 * @author Bill Ge, May Zhai, Alex Yoo
 */
public interface Visualization{
	
	/** Returns the ImageIcon for the State that maps to this object. */
	public ImageIcon getImage();
	
	/** Returns the color for the State that maps to this object. */
	public Color getColor();
	
	/** Returns a boolean that specifies whether a Color or ImageIcon is to be
	 *  used to represent the State, where true corresponds with ImageIcon and
	 *  false with some Color. */
	public boolean useImage();
	
}